/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * DialogoMetodoMPF.java
 *
 * Created on 11-nov-2009, 14:57:17
 */
package dialogos;

import java.awt.Color;
import javax.swing.JLabel;
import net.java.balloontip.BalloonTip;
import net.java.balloontip.styles.MinimalBalloonStyle;
import net.java.balloontip.utils.TimingUtils;
import utilidades.ValoresMetodoMPF;
import vistas.VistaPrincipal;

/**
 *
 * @author Shidobu
 */
public class DialogoMetodoMPF extends javax.swing.JDialog {
	private ValoresMetodoMPF vmmpf = new ValoresMetodoMPF ();
	private int tamañoSoftware = -1;
	private boolean modificadoNivelOrganizacion = false;
	private boolean modificadoNivelColaboracion = false;
	private boolean modificadoComplejidadVentana = false;
	private boolean modificadoNumeroFuncionalidades = false;
	private boolean modificadoNumeroUsuarios = false;
	private boolean modificadoComplejidadFuncionalidades = false;

	/** Creates new form DialogoMetodoMPF */
	public DialogoMetodoMPF (java.awt.Frame parent, boolean modal) {
		super (parent, modal);
		initComponents ();
		this.setLocationRelativeTo (null);
	}

	public JLabel getjLabelValorPuntajeSoftware () {
		return jLabelValorPuntajeSoftware;
	}

	public JLabel getjLabelValorTamañoSoftware () {
		return jLabelValorTamañoSoftware;
	}

	/** This method is called from within the constructor to
	 * initialize the form.
	 * WARNING: Do NOT modify this code. The content of this method is
	 * always regenerated by the Form Editor.
	 */
	@SuppressWarnings ("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        buttonGroupNivelOrganizacion = new javax.swing.ButtonGroup();
        buttonGroupNivelColaboracion = new javax.swing.ButtonGroup();
        buttonGroupNumeroUsuarios = new javax.swing.ButtonGroup();
        buttonGroupNumeroFuncionalidades = new javax.swing.ButtonGroup();
        buttonGroupComplejidadPorVentana = new javax.swing.ButtonGroup();
        buttonGroupComplejidadPorFuncionalidades = new javax.swing.ButtonGroup();
        jLabelInformacion = new javax.swing.JLabel();
        jPanelNivelOrganizacion = new javax.swing.JPanel();
        jRadioButtonNivelOrganizacionOrden = new javax.swing.JRadioButton();
        jRadioButtonNivelOrganizacionDesorden = new javax.swing.JRadioButton();
        jPanelNivelColaboracion = new javax.swing.JPanel();
        jRadioButtonNivelColaboracionBajo = new javax.swing.JRadioButton();
        jRadioButtonNivelColaboracionAlto = new javax.swing.JRadioButton();
        jPanelNumeroUsuarios = new javax.swing.JPanel();
        jRadioButtonNumeroUsuariosBasico = new javax.swing.JRadioButton();
        jRadioButtonNumeroUsuariosMedio = new javax.swing.JRadioButton();
        jRadioButtonNumeroUsuariosAvanzado = new javax.swing.JRadioButton();
        jPanelNumeroFuncionalidades = new javax.swing.JPanel();
        jRadioButtonNumeroFuncionalidadesBasico = new javax.swing.JRadioButton();
        jRadioButtonNumeroFuncionalidadesMedio = new javax.swing.JRadioButton();
        jRadioButtonNumeroFuncionalidadesAlto = new javax.swing.JRadioButton();
        jRadioButtonNumeroFuncionalidadesMuyAlto = new javax.swing.JRadioButton();
        jPanelComplejidadPorVentana = new javax.swing.JPanel();
        jRadioButtonComplejidadPorVentanaBajo = new javax.swing.JRadioButton();
        jRadioButtonComplejidadPorVentanaMedio = new javax.swing.JRadioButton();
        jRadioButtonComplejidadPorVentanaExcesivo = new javax.swing.JRadioButton();
        jPanelComplejidadPorFuncionalidades = new javax.swing.JPanel();
        jRadioButtonComplejidadPorFuncionalidadesBasico = new javax.swing.JRadioButton();
        jRadioButtonComplejidadPorFuncionalidadesMedio = new javax.swing.JRadioButton();
        jRadioButtonComplejidadPorFuncionalidadesAvanzado = new javax.swing.JRadioButton();
        jPanelResultado = new javax.swing.JPanel();
        jLabelPuntajeSoftware = new javax.swing.JLabel();
        jLabelTamañoSoftware = new javax.swing.JLabel();
        jLabelValorPuntajeSoftware = new javax.swing.JLabel();
        jLabelValorTamañoSoftware = new javax.swing.JLabel();
        jButtonAceptar = new javax.swing.JButton();
        jButtonCancelar = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("REUSA - Calcular tamaño Software");
        setMinimumSize(new java.awt.Dimension(587, 383));
        setName("dialogoMPF"); // NOI18N
        setResizable(false);

        jLabelInformacion.setText("Esta ventana le ayudará a seleccionar su tamaño de software. Por favor seleccione una alternativa de cada sección.");

        jPanelNivelOrganizacion.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Nivel de organización"));
        jPanelNivelOrganizacion.setMaximumSize(new java.awt.Dimension(185, 115));
        jPanelNivelOrganizacion.setMinimumSize(new java.awt.Dimension(185, 115));
        jPanelNivelOrganizacion.setPreferredSize(new java.awt.Dimension(197, 142));

        buttonGroupNivelOrganizacion.add(jRadioButtonNivelOrganizacionOrden);
        jRadioButtonNivelOrganizacionOrden.setText("Orden");
        jRadioButtonNivelOrganizacionOrden.setToolTipText("Elementos de la interfaz tiene un orden lógico a simple vista");
        jRadioButtonNivelOrganizacionOrden.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                cambiaEstadoCualquierRadioButton(evt);
            }
        });

        buttonGroupNivelOrganizacion.add(jRadioButtonNivelOrganizacionDesorden);
        jRadioButtonNivelOrganizacionDesorden.setText("Desorden");
        jRadioButtonNivelOrganizacionDesorden.setToolTipText("Elementos de la interfaz NO tiene un orden lógico a simple vista");
        jRadioButtonNivelOrganizacionDesorden.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                cambiaEstadoCualquierRadioButton(evt);
            }
        });

        javax.swing.GroupLayout jPanelNivelOrganizacionLayout = new javax.swing.GroupLayout(jPanelNivelOrganizacion);
        jPanelNivelOrganizacion.setLayout(jPanelNivelOrganizacionLayout);
        jPanelNivelOrganizacionLayout.setHorizontalGroup(
            jPanelNivelOrganizacionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelNivelOrganizacionLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanelNivelOrganizacionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jRadioButtonNivelOrganizacionOrden)
                    .addComponent(jRadioButtonNivelOrganizacionDesorden))
                .addContainerGap(100, Short.MAX_VALUE))
        );
        jPanelNivelOrganizacionLayout.setVerticalGroup(
            jPanelNivelOrganizacionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelNivelOrganizacionLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jRadioButtonNivelOrganizacionOrden)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jRadioButtonNivelOrganizacionDesorden)
                .addContainerGap(48, Short.MAX_VALUE))
        );

        jPanelNivelColaboracion.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Nivel de colaboración"));
        jPanelNivelColaboracion.setMaximumSize(new java.awt.Dimension(185, 115));
        jPanelNivelColaboracion.setMinimumSize(new java.awt.Dimension(185, 115));
        jPanelNivelColaboracion.setPreferredSize(new java.awt.Dimension(197, 142));

        buttonGroupNivelColaboracion.add(jRadioButtonNivelColaboracionBajo);
        jRadioButtonNivelColaboracionBajo.setText("Bajo");
        jRadioButtonNivelColaboracionBajo.setToolTipText("No existe un ambiente gráfico que ayude a los usuarios a identificar quién está presente en la interacción");
        jRadioButtonNivelColaboracionBajo.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                cambiaEstadoCualquierRadioButton(evt);
            }
        });

        buttonGroupNivelColaboracion.add(jRadioButtonNivelColaboracionAlto);
        jRadioButtonNivelColaboracionAlto.setText("Alto");
        jRadioButtonNivelColaboracionAlto.setToolTipText("Existe un ambiente gráfico compartido que ayuda a los usuarios en su interacción");
        jRadioButtonNivelColaboracionAlto.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                cambiaEstadoCualquierRadioButton(evt);
            }
        });

        javax.swing.GroupLayout jPanelNivelColaboracionLayout = new javax.swing.GroupLayout(jPanelNivelColaboracion);
        jPanelNivelColaboracion.setLayout(jPanelNivelColaboracionLayout);
        jPanelNivelColaboracionLayout.setHorizontalGroup(
            jPanelNivelColaboracionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelNivelColaboracionLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanelNivelColaboracionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jRadioButtonNivelColaboracionBajo)
                    .addComponent(jRadioButtonNivelColaboracionAlto))
                .addContainerGap(132, Short.MAX_VALUE))
        );
        jPanelNivelColaboracionLayout.setVerticalGroup(
            jPanelNivelColaboracionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelNivelColaboracionLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jRadioButtonNivelColaboracionBajo)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jRadioButtonNivelColaboracionAlto)
                .addContainerGap(48, Short.MAX_VALUE))
        );

        jPanelNumeroUsuarios.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Número de usuarios"));
        jPanelNumeroUsuarios.setMaximumSize(new java.awt.Dimension(185, 115));
        jPanelNumeroUsuarios.setMinimumSize(new java.awt.Dimension(185, 115));
        jPanelNumeroUsuarios.setPreferredSize(new java.awt.Dimension(197, 142));

        buttonGroupNumeroUsuarios.add(jRadioButtonNumeroUsuariosBasico);
        jRadioButtonNumeroUsuariosBasico.setText("Básico (0-49)");
        jRadioButtonNumeroUsuariosBasico.setToolTipText("");
        jRadioButtonNumeroUsuariosBasico.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                cambiaEstadoCualquierRadioButton(evt);
            }
        });

        buttonGroupNumeroUsuarios.add(jRadioButtonNumeroUsuariosMedio);
        jRadioButtonNumeroUsuariosMedio.setText("Medio (50-100)");
        jRadioButtonNumeroUsuariosMedio.setToolTipText("");
        jRadioButtonNumeroUsuariosMedio.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                cambiaEstadoCualquierRadioButton(evt);
            }
        });
        jRadioButtonNumeroUsuariosMedio.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jRadioButtonNumeroUsuariosMedioActionPerformed(evt);
            }
        });

        buttonGroupNumeroUsuarios.add(jRadioButtonNumeroUsuariosAvanzado);
        jRadioButtonNumeroUsuariosAvanzado.setText("Avanzado (más de 100)");
        jRadioButtonNumeroUsuariosAvanzado.setToolTipText("");
        jRadioButtonNumeroUsuariosAvanzado.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                cambiaEstadoCualquierRadioButton(evt);
            }
        });

        javax.swing.GroupLayout jPanelNumeroUsuariosLayout = new javax.swing.GroupLayout(jPanelNumeroUsuarios);
        jPanelNumeroUsuarios.setLayout(jPanelNumeroUsuariosLayout);
        jPanelNumeroUsuariosLayout.setHorizontalGroup(
            jPanelNumeroUsuariosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelNumeroUsuariosLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanelNumeroUsuariosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jRadioButtonNumeroUsuariosBasico)
                    .addComponent(jRadioButtonNumeroUsuariosMedio)
                    .addComponent(jRadioButtonNumeroUsuariosAvanzado))
                .addContainerGap(40, Short.MAX_VALUE))
        );
        jPanelNumeroUsuariosLayout.setVerticalGroup(
            jPanelNumeroUsuariosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelNumeroUsuariosLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jRadioButtonNumeroUsuariosBasico)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jRadioButtonNumeroUsuariosMedio)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jRadioButtonNumeroUsuariosAvanzado)
                .addContainerGap(33, Short.MAX_VALUE))
        );

        jPanelNumeroFuncionalidades.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Número de funcionalidades"));
        jPanelNumeroFuncionalidades.setMaximumSize(new java.awt.Dimension(185, 115));
        jPanelNumeroFuncionalidades.setMinimumSize(new java.awt.Dimension(185, 115));

        buttonGroupNumeroFuncionalidades.add(jRadioButtonNumeroFuncionalidadesBasico);
        jRadioButtonNumeroFuncionalidadesBasico.setText("Básico (0-30)");
        jRadioButtonNumeroFuncionalidadesBasico.setToolTipText("");
        jRadioButtonNumeroFuncionalidadesBasico.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                cambiaEstadoCualquierRadioButton(evt);
            }
        });

        buttonGroupNumeroFuncionalidades.add(jRadioButtonNumeroFuncionalidadesMedio);
        jRadioButtonNumeroFuncionalidadesMedio.setText("Medio (30-80)");
        jRadioButtonNumeroFuncionalidadesMedio.setToolTipText("");
        jRadioButtonNumeroFuncionalidadesMedio.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                cambiaEstadoCualquierRadioButton(evt);
            }
        });

        buttonGroupNumeroFuncionalidades.add(jRadioButtonNumeroFuncionalidadesAlto);
        jRadioButtonNumeroFuncionalidadesAlto.setText("Alto (80-180)");
        jRadioButtonNumeroFuncionalidadesAlto.setToolTipText("");
        jRadioButtonNumeroFuncionalidadesAlto.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                cambiaEstadoCualquierRadioButton(evt);
            }
        });

        buttonGroupNumeroFuncionalidades.add(jRadioButtonNumeroFuncionalidadesMuyAlto);
        jRadioButtonNumeroFuncionalidadesMuyAlto.setText("Muy Alto (más de 180)");
        jRadioButtonNumeroFuncionalidadesMuyAlto.setToolTipText("");
        jRadioButtonNumeroFuncionalidadesMuyAlto.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                cambiaEstadoCualquierRadioButton(evt);
            }
        });

        javax.swing.GroupLayout jPanelNumeroFuncionalidadesLayout = new javax.swing.GroupLayout(jPanelNumeroFuncionalidades);
        jPanelNumeroFuncionalidades.setLayout(jPanelNumeroFuncionalidadesLayout);
        jPanelNumeroFuncionalidadesLayout.setHorizontalGroup(
            jPanelNumeroFuncionalidadesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelNumeroFuncionalidadesLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanelNumeroFuncionalidadesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jRadioButtonNumeroFuncionalidadesBasico)
                    .addComponent(jRadioButtonNumeroFuncionalidadesMedio)
                    .addComponent(jRadioButtonNumeroFuncionalidadesAlto)
                    .addComponent(jRadioButtonNumeroFuncionalidadesMuyAlto))
                .addContainerGap(38, Short.MAX_VALUE))
        );
        jPanelNumeroFuncionalidadesLayout.setVerticalGroup(
            jPanelNumeroFuncionalidadesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelNumeroFuncionalidadesLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jRadioButtonNumeroFuncionalidadesBasico)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jRadioButtonNumeroFuncionalidadesMedio)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jRadioButtonNumeroFuncionalidadesAlto)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jRadioButtonNumeroFuncionalidadesMuyAlto)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jPanelComplejidadPorVentana.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Complejidad por ventana"));
        jPanelComplejidadPorVentana.setMaximumSize(new java.awt.Dimension(185, 115));
        jPanelComplejidadPorVentana.setMinimumSize(new java.awt.Dimension(185, 115));
        jPanelComplejidadPorVentana.setPreferredSize(new java.awt.Dimension(197, 142));

        buttonGroupComplejidadPorVentana.add(jRadioButtonComplejidadPorVentanaBajo);
        jRadioButtonComplejidadPorVentanaBajo.setText("Bajo");
        jRadioButtonComplejidadPorVentanaBajo.setToolTipText("Pocos elementos distractores;  no existe una gran variedad de tipos, tamaños, ni formatos. Elementos tienen solo una interpretación posible");
        jRadioButtonComplejidadPorVentanaBajo.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                cambiaEstadoCualquierRadioButton(evt);
            }
        });

        buttonGroupComplejidadPorVentana.add(jRadioButtonComplejidadPorVentanaMedio);
        jRadioButtonComplejidadPorVentanaMedio.setText("Medio");
        jRadioButtonComplejidadPorVentanaMedio.setToolTipText("Elementos de la interfaz tienen más de una utilización;  sin embargo no existe una gran variedad de tipos, tamaños, ni formatos");
        jRadioButtonComplejidadPorVentanaMedio.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                cambiaEstadoCualquierRadioButton(evt);
            }
        });

        buttonGroupComplejidadPorVentana.add(jRadioButtonComplejidadPorVentanaExcesivo);
        jRadioButtonComplejidadPorVentanaExcesivo.setText("Excesivo");
        jRadioButtonComplejidadPorVentanaExcesivo.setToolTipText("Gran cantidad de elementos distractores;  distintos tipos, distintos tamaños, distintos formatos, y distintos usos");
        jRadioButtonComplejidadPorVentanaExcesivo.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                cambiaEstadoCualquierRadioButton(evt);
            }
        });

        javax.swing.GroupLayout jPanelComplejidadPorVentanaLayout = new javax.swing.GroupLayout(jPanelComplejidadPorVentana);
        jPanelComplejidadPorVentana.setLayout(jPanelComplejidadPorVentanaLayout);
        jPanelComplejidadPorVentanaLayout.setHorizontalGroup(
            jPanelComplejidadPorVentanaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelComplejidadPorVentanaLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanelComplejidadPorVentanaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jRadioButtonComplejidadPorVentanaBajo)
                    .addComponent(jRadioButtonComplejidadPorVentanaMedio)
                    .addComponent(jRadioButtonComplejidadPorVentanaExcesivo))
                .addContainerGap(100, Short.MAX_VALUE))
        );
        jPanelComplejidadPorVentanaLayout.setVerticalGroup(
            jPanelComplejidadPorVentanaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelComplejidadPorVentanaLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jRadioButtonComplejidadPorVentanaBajo)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jRadioButtonComplejidadPorVentanaMedio)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jRadioButtonComplejidadPorVentanaExcesivo)
                .addContainerGap(22, Short.MAX_VALUE))
        );

        jPanelComplejidadPorFuncionalidades.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Complejidad por funcionalidades"));
        jPanelComplejidadPorFuncionalidades.setMaximumSize(new java.awt.Dimension(185, 115));
        jPanelComplejidadPorFuncionalidades.setMinimumSize(new java.awt.Dimension(185, 115));
        jPanelComplejidadPorFuncionalidades.setPreferredSize(new java.awt.Dimension(197, 142));

        buttonGroupComplejidadPorFuncionalidades.add(jRadioButtonComplejidadPorFuncionalidadesBasico);
        jRadioButtonComplejidadPorFuncionalidadesBasico.setText("Básico");
        jRadioButtonComplejidadPorFuncionalidadesBasico.setToolTipText("Sistemas con funcionalidades básicas (Ej. visualizar, actualizar, eliminar, ingresar). No se necesita conocimiento previo de la aplicación para realizarlas");
        jRadioButtonComplejidadPorFuncionalidadesBasico.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                cambiaEstadoCualquierRadioButton(evt);
            }
        });

        buttonGroupComplejidadPorFuncionalidades.add(jRadioButtonComplejidadPorFuncionalidadesMedio);
        jRadioButtonComplejidadPorFuncionalidadesMedio.setText("Medio");
        jRadioButtonComplejidadPorFuncionalidadesMedio.setToolTipText("Sistemas con funcionalidades básicas, pero que requieren conocimiento previo para operar en la aplicación");
        jRadioButtonComplejidadPorFuncionalidadesMedio.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                cambiaEstadoCualquierRadioButton(evt);
            }
        });

        buttonGroupComplejidadPorFuncionalidades.add(jRadioButtonComplejidadPorFuncionalidadesAvanzado);
        jRadioButtonComplejidadPorFuncionalidadesAvanzado.setText("Avanzado");
        jRadioButtonComplejidadPorFuncionalidadesAvanzado.setToolTipText("Sistemas con funcionalidades complejas que requieren aprendizaje de la aplicación antes de su realización");
        jRadioButtonComplejidadPorFuncionalidadesAvanzado.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                cambiaEstadoCualquierRadioButton(evt);
            }
        });

        javax.swing.GroupLayout jPanelComplejidadPorFuncionalidadesLayout = new javax.swing.GroupLayout(jPanelComplejidadPorFuncionalidades);
        jPanelComplejidadPorFuncionalidades.setLayout(jPanelComplejidadPorFuncionalidadesLayout);
        jPanelComplejidadPorFuncionalidadesLayout.setHorizontalGroup(
            jPanelComplejidadPorFuncionalidadesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelComplejidadPorFuncionalidadesLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanelComplejidadPorFuncionalidadesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jRadioButtonComplejidadPorFuncionalidadesBasico)
                    .addComponent(jRadioButtonComplejidadPorFuncionalidadesMedio)
                    .addComponent(jRadioButtonComplejidadPorFuncionalidadesAvanzado))
                .addContainerGap(94, Short.MAX_VALUE))
        );
        jPanelComplejidadPorFuncionalidadesLayout.setVerticalGroup(
            jPanelComplejidadPorFuncionalidadesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelComplejidadPorFuncionalidadesLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jRadioButtonComplejidadPorFuncionalidadesBasico)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jRadioButtonComplejidadPorFuncionalidadesMedio)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jRadioButtonComplejidadPorFuncionalidadesAvanzado)
                .addContainerGap(33, Short.MAX_VALUE))
        );

        jPanelResultado.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Resultado"));
        jPanelResultado.setMaximumSize(new java.awt.Dimension(376, 113));
        jPanelResultado.setMinimumSize(new java.awt.Dimension(376, 113));
        jPanelResultado.setPreferredSize(new java.awt.Dimension(376, 113));

        jLabelPuntajeSoftware.setText("Puntaje de su Software:");

        jLabelTamañoSoftware.setText("Tamaño de su Software:");

        jLabelValorPuntajeSoftware.setFont(new java.awt.Font("Tahoma", 1, 12));
        jLabelValorPuntajeSoftware.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabelValorPuntajeSoftware.setText("0");

        jLabelValorTamañoSoftware.setFont(new java.awt.Font("Tahoma", 1, 12));
        jLabelValorTamañoSoftware.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabelValorTamañoSoftware.setText("INDETERMINADO");

        javax.swing.GroupLayout jPanelResultadoLayout = new javax.swing.GroupLayout(jPanelResultado);
        jPanelResultado.setLayout(jPanelResultadoLayout);
        jPanelResultadoLayout.setHorizontalGroup(
            jPanelResultadoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelResultadoLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanelResultadoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabelTamañoSoftware, javax.swing.GroupLayout.PREFERRED_SIZE, 134, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabelPuntajeSoftware, javax.swing.GroupLayout.DEFAULT_SIZE, 134, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanelResultadoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabelValorTamañoSoftware, javax.swing.GroupLayout.PREFERRED_SIZE, 151, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabelValorPuntajeSoftware, javax.swing.GroupLayout.PREFERRED_SIZE, 151, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(79, Short.MAX_VALUE))
        );
        jPanelResultadoLayout.setVerticalGroup(
            jPanelResultadoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelResultadoLayout.createSequentialGroup()
                .addGroup(jPanelResultadoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabelPuntajeSoftware)
                    .addComponent(jLabelValorPuntajeSoftware, javax.swing.GroupLayout.PREFERRED_SIZE, 15, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanelResultadoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabelTamañoSoftware)
                    .addComponent(jLabelValorTamañoSoftware, javax.swing.GroupLayout.PREFERRED_SIZE, 15, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jButtonAceptar.setText("Aceptar");
        jButtonAceptar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonAceptarActionPerformed(evt);
            }
        });

        jButtonCancelar.setText("Cancelar");
        jButtonCancelar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonCancelarActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabelInformacion, javax.swing.GroupLayout.DEFAULT_SIZE, 583, Short.MAX_VALUE)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addComponent(jPanelNumeroFuncionalidades, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addComponent(jPanelNivelOrganizacion, javax.swing.GroupLayout.DEFAULT_SIZE, 189, Short.MAX_VALUE))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jPanelNivelColaboracion, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(jPanelNumeroUsuarios, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                            .addComponent(jPanelResultado, javax.swing.GroupLayout.DEFAULT_SIZE, 392, Short.MAX_VALUE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(jPanelComplejidadPorFuncionalidades, javax.swing.GroupLayout.DEFAULT_SIZE, 185, Short.MAX_VALUE)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jButtonAceptar)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jButtonCancelar))
                            .addComponent(jPanelComplejidadPorVentana, javax.swing.GroupLayout.DEFAULT_SIZE, 185, Short.MAX_VALUE))))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabelInformacion)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jPanelComplejidadPorVentana, javax.swing.GroupLayout.DEFAULT_SIZE, 130, Short.MAX_VALUE)
                    .addComponent(jPanelNivelColaboracion, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 130, Short.MAX_VALUE)
                    .addComponent(jPanelNivelOrganizacion, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 130, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jPanelNumeroUsuarios, javax.swing.GroupLayout.DEFAULT_SIZE, 141, Short.MAX_VALUE)
                    .addComponent(jPanelNumeroFuncionalidades, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jPanelComplejidadPorFuncionalidades, javax.swing.GroupLayout.DEFAULT_SIZE, 141, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(53, 53, 53)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jButtonCancelar)
                            .addComponent(jButtonAceptar)))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(3, 3, 3)
                        .addComponent(jPanelResultado, javax.swing.GroupLayout.PREFERRED_SIZE, 73, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap())
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

	private void jButtonAceptarActionPerformed (java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonAceptarActionPerformed
		if (modificadoNivelOrganizacion && modificadoNivelColaboracion && modificadoComplejidadVentana &&
			modificadoNumeroFuncionalidades && modificadoNumeroUsuarios && modificadoComplejidadFuncionalidades) {
			((VistaPrincipal) this.getParent ()).getPanelPaso1 ().cambioSeleccionTamañoSoftware (tamañoSoftware);
			this.setVisible (false);
		}
		else {
			TimingUtils.showTimedBalloon (new BalloonTip (jButtonAceptar, "Debe escoger un valor de cada sección",
														  new MinimalBalloonStyle (new Color (231, 225, 165), 2), BalloonTip.Orientation.RIGHT_ABOVE,
														  BalloonTip.AttachLocation.ALIGNED, 20, 10, false), 3000);
		}

	}//GEN-LAST:event_jButtonAceptarActionPerformed

	private void jButtonCancelarActionPerformed (java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonCancelarActionPerformed
		this.setVisible (false);
	}//GEN-LAST:event_jButtonCancelarActionPerformed

	private void cambiaEstadoCualquierRadioButton (java.awt.event.ItemEvent evt) {//GEN-FIRST:event_cambiaEstadoCualquierRadioButton
		int suma = 0;

		if (jRadioButtonNivelOrganizacionOrden.isSelected ()) {
			modificadoNivelOrganizacion = true;
			suma += vmmpf.getPuntosNivelOrganizacionOrden ();
		}
		else if (jRadioButtonNivelOrganizacionDesorden.isSelected ()) {
			modificadoNivelOrganizacion = true;
			suma += vmmpf.getPuntosNivelOrganizacionDesorden ();
		}
		if (jRadioButtonNivelColaboracionBajo.isSelected ()) {
			modificadoNivelColaboracion = true;
			suma += vmmpf.getPuntosNivelColaboracionBajo ();
		}
		else if (jRadioButtonNivelColaboracionAlto.isSelected ()) {
			modificadoNivelColaboracion = true;
			suma += vmmpf.getPuntosNivelColaboracionAlto ();
		}
		if (jRadioButtonComplejidadPorVentanaBajo.isSelected ()) {
			modificadoComplejidadVentana = true;
			suma += vmmpf.getPuntosComplejidadVentanaBajo ();
		}
		else if (jRadioButtonComplejidadPorVentanaMedio.isSelected ()) {
			modificadoComplejidadVentana = true;
			suma += vmmpf.getPuntosComplejidadVentanaMedio ();
		}
		else if (jRadioButtonComplejidadPorVentanaExcesivo.isSelected ()) {
			modificadoComplejidadVentana = true;
			suma += vmmpf.getPuntosComplejidadVentanaExcesivo ();
		}
		if (jRadioButtonNumeroFuncionalidadesBasico.isSelected ()) {
			modificadoNumeroFuncionalidades = true;
			suma += vmmpf.getPuntosNumeroFuncionalidadesBasico ();
		}
		else if (jRadioButtonNumeroFuncionalidadesMedio.isSelected ()) {
			modificadoNumeroFuncionalidades = true;
			suma += vmmpf.getPuntosNumeroFuncionalidadesMedio ();
		}
		else if (jRadioButtonNumeroFuncionalidadesAlto.isSelected ()) {
			modificadoNumeroFuncionalidades = true;
			suma += vmmpf.getPuntosNumeroFuncionalidadesAlto ();
		}
		else if (jRadioButtonNumeroFuncionalidadesMuyAlto.isSelected ()) {
			modificadoNumeroFuncionalidades = true;
			suma += vmmpf.getPuntosNumeroFuncionalidadesMuyAlto ();
		}
		if (jRadioButtonNumeroUsuariosBasico.isSelected ()) {
			modificadoNumeroUsuarios = true;
			suma += vmmpf.getPuntosNumeroUsuariosBasico ();
		}
		else if (jRadioButtonNumeroUsuariosMedio.isSelected ()) {
			modificadoNumeroUsuarios = true;
			suma += vmmpf.getPuntosNumeroUsuariosMedio ();
		}
		else if (jRadioButtonNumeroUsuariosAvanzado.isSelected ()) {
			modificadoNumeroUsuarios = true;
			suma += vmmpf.getPuntosNumeroUsuariosAvanzado ();
		}
		if (jRadioButtonComplejidadPorFuncionalidadesBasico.isSelected ()) {
			modificadoComplejidadFuncionalidades = true;
			suma += vmmpf.getPuntosComplejidadFuncionalidadesBasico ();
		}
		else if (jRadioButtonComplejidadPorFuncionalidadesMedio.isSelected ()) {
			modificadoComplejidadFuncionalidades = true;
			suma += vmmpf.getPuntosComplejidadFuncionalidadesMedio ();
		}
		else if (jRadioButtonComplejidadPorFuncionalidadesAvanzado.isSelected ()) {
			modificadoComplejidadFuncionalidades = true;
			suma += vmmpf.getPuntosComplejidadFuncionalidadesAvanzado ();
		}
		jLabelValorPuntajeSoftware.setText (String.valueOf (suma));
		if (suma > 0 && suma <= vmmpf.getTotalPuntajePequeñoMayor ()) {
			tamañoSoftware = 0;
			jLabelValorTamañoSoftware.setText ("PEQUEÑO");
		}
		else if (suma > vmmpf.getTotalPuntajePequeñoMayor () && suma <= vmmpf.getTotalPuntajeMedioMayor ()) {
			tamañoSoftware = 1;
			jLabelValorTamañoSoftware.setText ("MEDIO");
		}
		else if (suma > vmmpf.getTotalPuntajeMedioMayor ()) {
			tamañoSoftware = 2;
			jLabelValorTamañoSoftware.setText ("GRANDE");
		}
		else {
			tamañoSoftware = -1;
			jLabelValorTamañoSoftware.setText ("INDETERMINADO");
		}
	}//GEN-LAST:event_cambiaEstadoCualquierRadioButton

        private void jRadioButtonNumeroUsuariosMedioActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jRadioButtonNumeroUsuariosMedioActionPerformed
            // TODO add your handling code here:
        }//GEN-LAST:event_jRadioButtonNumeroUsuariosMedioActionPerformed

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.ButtonGroup buttonGroupComplejidadPorFuncionalidades;
    private javax.swing.ButtonGroup buttonGroupComplejidadPorVentana;
    private javax.swing.ButtonGroup buttonGroupNivelColaboracion;
    private javax.swing.ButtonGroup buttonGroupNivelOrganizacion;
    private javax.swing.ButtonGroup buttonGroupNumeroFuncionalidades;
    private javax.swing.ButtonGroup buttonGroupNumeroUsuarios;
    private javax.swing.JButton jButtonAceptar;
    private javax.swing.JButton jButtonCancelar;
    private javax.swing.JLabel jLabelInformacion;
    private javax.swing.JLabel jLabelPuntajeSoftware;
    private javax.swing.JLabel jLabelTamañoSoftware;
    private javax.swing.JLabel jLabelValorPuntajeSoftware;
    private javax.swing.JLabel jLabelValorTamañoSoftware;
    private javax.swing.JPanel jPanelComplejidadPorFuncionalidades;
    private javax.swing.JPanel jPanelComplejidadPorVentana;
    private javax.swing.JPanel jPanelNivelColaboracion;
    private javax.swing.JPanel jPanelNivelOrganizacion;
    private javax.swing.JPanel jPanelNumeroFuncionalidades;
    private javax.swing.JPanel jPanelNumeroUsuarios;
    private javax.swing.JPanel jPanelResultado;
    private javax.swing.JRadioButton jRadioButtonComplejidadPorFuncionalidadesAvanzado;
    private javax.swing.JRadioButton jRadioButtonComplejidadPorFuncionalidadesBasico;
    private javax.swing.JRadioButton jRadioButtonComplejidadPorFuncionalidadesMedio;
    private javax.swing.JRadioButton jRadioButtonComplejidadPorVentanaBajo;
    private javax.swing.JRadioButton jRadioButtonComplejidadPorVentanaExcesivo;
    private javax.swing.JRadioButton jRadioButtonComplejidadPorVentanaMedio;
    private javax.swing.JRadioButton jRadioButtonNivelColaboracionAlto;
    private javax.swing.JRadioButton jRadioButtonNivelColaboracionBajo;
    private javax.swing.JRadioButton jRadioButtonNivelOrganizacionDesorden;
    private javax.swing.JRadioButton jRadioButtonNivelOrganizacionOrden;
    private javax.swing.JRadioButton jRadioButtonNumeroFuncionalidadesAlto;
    private javax.swing.JRadioButton jRadioButtonNumeroFuncionalidadesBasico;
    private javax.swing.JRadioButton jRadioButtonNumeroFuncionalidadesMedio;
    private javax.swing.JRadioButton jRadioButtonNumeroFuncionalidadesMuyAlto;
    private javax.swing.JRadioButton jRadioButtonNumeroUsuariosAvanzado;
    private javax.swing.JRadioButton jRadioButtonNumeroUsuariosBasico;
    private javax.swing.JRadioButton jRadioButtonNumeroUsuariosMedio;
    // End of variables declaration//GEN-END:variables
}
